package lang;


import util.StringHelper;

/**
 * <描述> 文件对象
 * 
 * @author 王永弟
 * @since 1.0
 * @copyright 广州从兴电子开发有限公司-电子渠道业务部
 * @initialize <实例化方法>
 * @date 2011-7-18
 * @log <重大修改日志，格式：YYYY-MM-DD 修改人 修改内容>
 */
public class FileBean implements java.io.Serializable, Cloneable {
	private static final long serialVersionUID = 1L;
	/**
	 * 文件名，包含文件的相对路径
	 */
	private String fileName;
	/**
	 * 文件真是名字，文件原始上传时文件展示的名称
	 */
	private String realName;
	/**
	 * 文件大小，单位为Byte
	 */
	private long size;
	/**
	 * 是否新增文件
	 */
	private boolean create = false;
	/**
	 * 是否删除文件
	 */
	private boolean delete = false;
	/**
	 * 是否简单格式
	 */
	private boolean simple = false;
	/**
	 * 是否上传至前台，若当前值为true，则获取在线编辑器对应的FTP，上传文件至前台相应位置
	 */
	private boolean uploadToPortal = false;
	/**
	 * 上传到前台的渠道，默认为网站,多个用半角分号隔开,值为渠道的枚举名字
	 */
	private String channel = "WEB";

	public FileBean() {
	}

	/**
	 * <构造函数>根据字符串，构造文件对象<br>
	 * 字符串的格式为fileName|name|size|isUploadToPortal|isSimple|id|CREATE|channel
	 * 
	 * @param value
	 */
	public FileBean(String value) {
		if (StringHelper.hasLength(value)) {
			String[] args = value.split("\\|");
			this.fileName = args[0];
			if (args.length >= 2) {
				this.realName = args[1];
				if (args.length >= 3) {
					this.size = new Long(args[2]).longValue();
				}
				if (args.length >= 4) {
					this.uploadToPortal = Boolean.valueOf(args[3]);
				}
				if (args.length >= 5) {
					this.simple = Boolean.valueOf(args[4]);
				}
				if (args.length >= 7) {
					if ("CREATE".equalsIgnoreCase(args[6])) {
						this.create = true;
					} else if ("DELETE".equalsIgnoreCase(args[6])) {
						this.delete = true;
					}
				}
				if (args.length >= 8) {
					if(StringHelper.isNotBlank(args[7])){
						channel = args[7];
					}
				}				
			} else {
				this.realName = this.fileName.substring(this.fileName.lastIndexOf("/") + 1);
				this.simple = true;
			}
		}
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public boolean isCreate() {
		return create;
	}

	public void setCreate(boolean create) {
		this.create = create;
	}

	public boolean isDelete() {
		return delete;
	}

	public void setDelete(boolean delete) {
		this.delete = delete;
	}

	public long getSize() {
		return size;
	}

	public void setSize(long size) {
		this.size = size;
	}

	public String getValue() {
		if (this.simple) {
			return fileName;
		}
		return fileName + "|" + realName + "|" + size + "|" + uploadToPortal + "|" +channel;
		
	}

	/**
	 * <方法描述> 是否是简单的文件保存格式
	 * 
	 * @return
	 */
	public boolean isSimple() {
		return simple;
	}

	/**
	 * <方法描述>是否上传至前台，若当前值为true，则获取在线编辑器对应的FTP，上传文件至前台相应位置
	 * 
	 * @return
	 */
	public boolean isUploadToPortal() {
		return uploadToPortal;
	}

	public void setChannel(String channel) {
		this.channel = channel;
	}

	/**
	 * 上传到前台的渠道，默认为网站,多个用半角分号隔开,值为渠道的枚举名字
	 * @return
	 */
	public String getChannel() {
		return channel;
	}
}
